cd "C:\Users\49669\Desktop\雄安新区\合成控制"
use 数据.dta,clear
sum
gen ln新房数量=log(新房数量)
gen ln新房价格=log(新房价格)
gen ln二手数量=log(二手数量)
gen ln二手价格=log(二手价格)
gen ln人均GDP=log(人均GDP)
gen ln人均可支配收入=log(人均可支配收入)
gen ln常住人口=log(常住人口)
gen ln人口密度=log(人口密度)
gen ln住宅投资额=log(住宅投资额)
gen ln土地成交均价=log(土地成交均价)
gen ln贷款余额=log(贷款余额)
gen ln工业总产值=log(工业总产值)
gen ln户数=log(户数)
sum

tab 年份, gen(年份)
tsset 序号 年份 // 定义数据是一个时间序列数据
****
// 图1 真实北京与合成北京的住宅销售数量，上海0.428 广州0.286 深圳0.285
preserve
synth 新房数量 新房数量(2010(1)2016) ln户数  ln人均GDP  ln土地成交均价  ln住宅投资额  第三产业比重 新房数量(2010) 新房数量(2013) 新房数量(2016), trunit(1) trperiod(2017) nested fig 
restore

preserve
synth 二手数量 二手数量(2010(1)2016)  ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重 二手数量(2010) 二手数量(2013) 二手数量(2016), trunit(1) trperiod(2017) nested fig 
restore

// 图2 真实北京与合成北京的住宅销售价格,上海0.795 广州0.187 深圳0.018
preserve
synth 新房价格 新房价格(2010(1)2016)  ln户数 ln人均GDP  ln土地成交均价  ln住宅投资额 第三产业比重  新房价格(2010) 新房价格(2013) 新房价格(2016), trunit(1) trperiod(2017) nested fig 
restore

preserve
synth 二手价格 二手价格(2010(1)2016)  ln户数  ln人均GDP  ln土地成交均价  ln住宅投资额 第三产业比重 二手价格(2010) 二手价格(2013) 二手价格(2016), trunit(1) trperiod(2017) nested fig 
restore

//找不到合成控制对象,作趋势图
gen Beijing=二手价格 if 序号==1
line Beijing  年份, xline(2017, lpattern(dash))

// 图3 真实北京与合成北京的价格涨幅，上海0 广州0.662 深圳0.338  
preserve
synth 新房涨幅 新房涨幅(2010(1)2016) ln人口密度 ln人均GDP  ln土地成交均价    ln住宅投资额     新房涨幅(2010) 新房涨幅(2013) 新房涨幅(2016), trunit(1) trperiod(2017) nested fig 
restore

preserve
synth 二手涨幅 二手涨幅(2010(1)2016) ln人口密度 ln人均GDP  ln土地成交均价    ln住宅投资额   二手涨幅(2010) 二手涨幅(2013) 二手涨幅(2016), trunit(1) trperiod(2017) nested fig 
restore

//找不到合成控制对象,作趋势图
preserve
gen Beijing=新房数量 if 序号==1
gen Shanghai=新房数量 if 序号==2
gen Guanghzou=新房数量 if 序号==3
gen Shenzhen=新房数量 if 序号==4
gen Tianjin=新房数量 if 序号==5
twoway line Beijing Shanghai Guanghzou Shenzhen Tianjin 年份, xline(2017, lpattern(dash))
restore

gen growth=二手涨幅 if 序号==1
line growth  年份, xline(2017, lpattern(dash))

****稳健性检验一*****************************

//安慰剂检验——处置组变换
**深圳
synth 新房数量 ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重  新房数量(2010) 新房数量(2013) 新房数量(2016), trunit(4) trperiod(2017) nested fig
**上海
synth 新房数量 ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重  新房数量(2010) 新房数量(2013) 新房数量(2016), trunit(2) trperiod(2017) nested fig

**上海
synth 二手数量 ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重  二手数量(2010) 二手数量(2013) 二手数量(2016), trunit(2) trperiod(2017) nested fig
**广州
synth 二手数量 ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重  二手数量(2010) 二手数量(2013) 二手数量(2016), trunit(3) trperiod(2017) nested fig

**广州
synth 新房价格 ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重  新房价格(2010) 新房价格(2013) 新房价格(2016), trunit(3) trperiod(2017) nested fig
**上海
synth 新房价格 ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重  新房价格(2010) 新房价格(2013) 新房价格(2016), trunit(2) trperiod(2017) nested fig

**广州
synth 新房涨幅 ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重 新房涨幅(2010) 新房涨幅(2013) 新房涨幅(2016), trunit(3) trperiod(2017) nested fig
**上海
synth 新房涨幅 ln户数 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重 新房涨幅(2010) 新房涨幅(2013) 新房涨幅(2016), trunit(2) trperiod(2017) nested fig

************************************稳健性检验二(住宅销售数量为目标变量)************************************
//政策实施前均方预测误差的平方根
tempname resmat
        forvalues i = 1/5 {
        synth 二手数量 ln人口密度 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重 二手数量(2010) 二手数量(2013) 二手数量(2016), trunit(`i') trperiod(2017) xperiod(2010(1)2016) mspeperiod
        matrix `resmat' = nullmat(`resmat') \ e(RMSPE)
        local names `"`names' `"`i'"'"'
        }
        mat colnames `resmat' = "RMSPE"
        mat rownames `resmat' = `names'
        matlist `resmat' , row("Treated Unit")
		** loop through units

//各城市预测误差分布图
forval i=1/5{
qui synth 二手数量 ln人口密度 ln人均GDP  ln土地成交均价   ln住宅投资额 第三产业比重 二手数量(2010) 二手数量(2013) 二手数量(2016), xperiod(2010(1)2016) trunit(`i') trperiod(2017) keep(synth_`i', replace)
}

forval i=1/5{
use synth_`i', clear
rename _time years
gen tr_effect_`i' = _Y_treated - _Y_synthetic
keep years tr_effect_`i'
drop if missing(years)
save synth_`i', replace
}
**

use synth_1, clear
forval i=2/5{
qui merge 1:1 years using synth_`i', nogenerate
}
**删除拟合不好的城市及上海市（干预组）
drop tr_effect_3    //删除深圳
drop tr_effect_5

local lp1
forval i=1/2 {
   local lp1 `lp1' line tr_effect_`i' years, lpattern(dash) lcolor(gs8) ||
}
** 
local lp2
forval i=3/5 {
   local lp2 `lp2' line tr_effect_`i' years, lpattern(dash) lcolor(gs8) ||
}
 

twoway `lp1'  `lp2' || line tr_effect_1 years
lcolor(black) legend(off) xline(2017, lpattern(dash))
